Database Changes Track করা এবং মাইগ্রেশন ক্রিয়েট করা

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Data Migrations এবং Database Versioning |
204
204

Entity Framework (EF) ব্যবহার করার সময়, ডেটাবেসের স্কিমা (Schema) বা স্ট্রাকচার পরিবর্তন করলে, সেই পরিবর্তনগুলি ডেটাবেসে প্রতিফলিত করতে মাইগ্রেশন ব্যবহৃত হয়। মাইগ্রেশন হল একটি সিস্টেম যা আপনাকে কোডে ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। EF মাইগ্রেশন, Code First পদ্ধতির সাথে বিশেষভাবে কার্যকর, যেখানে আপনি কোডের মাধ্যমে ডেটাবেসের কাঠামো নির্ধারণ করেন এবং EF সেই কাঠামোর পরিবর্তনগুলো ট্র্যাক করে।


Database Changes Track করা

Database changes tracking এর মাধ্যমে Entity Framework আপনাকে ডেটাবেস স্কিমা এর পরিবর্তন গুলি ট্র্যাক করতে এবং প্রয়োজন অনুযায়ী মাইগ্রেশন তৈরি করতে সাহায্য করে। EF-এর মাইগ্রেশন সিস্টেমে মূলত তিনটি কাজ করা হয়:

  1. ডেটাবেস মডেল পরিবর্তন ট্র্যাকিং:
    যখন আপনি আপনার Entity ক্লাস বা DbContext এর মধ্যে কোন পরিবর্তন করেন (যেমন, নতুন প্রপার্টি যোগ করা, নতুন Entity ক্লাস তৈরি করা ইত্যাদি), EF ওই পরিবর্তনগুলো ট্র্যাক করতে থাকে।
  2. মাইগ্রেশন ফাইল তৈরি:
    EF পরিবর্তনগুলো শনাক্ত করে এবং সেগুলোর জন্য মাইগ্রেশন ফাইল তৈরি করতে পারে। এই ফাইলগুলোর মধ্যে ডেটাবেস স্কিমার পরিবর্তনের নির্দেশনা থাকে।
  3. ডেটাবেস আপডেট:
    মাইগ্রেশন ফাইলগুলি তৈরি করার পর, ডেটাবেসকে সেগুলোর সাথে সিঙ্ক করা হয়, যাতে কোডের সাথে ডেটাবেসের কাঠামো মিলে যায়।

মাইগ্রেশন ক্রিয়েট করা

Entity Framework এর মাইগ্রেশন সিস্টেম ব্যবহার করে ডেটাবেসের কাঠামো পরিবর্তন এবং মডেল পরিবর্তন গুলোর জন্য প্রয়োজনীয় কোড তৈরি করা হয়। EF এর মাইগ্রেশন কাজ করে বিশেষত Code First পদ্ধতিতে, যেখানে আপনি প্রথমে কোড লিখে ডেটাবেস মডেল তৈরি করেন এবং পরে সেটিকে ডেটাবেসের সাথে সিঙ্ক করেন।

মাইগ্রেশন তৈরি করার ধাপগুলো:

  1. প্রথম মাইগ্রেশন তৈরি: প্রথমে Entity Framework মডেল তৈরি করার পর, প্রথম মাইগ্রেশনটি তৈরি করা হয়।

    Command:

    Add-Migration InitialCreate
    

    এই কমান্ডটি ব্যবহার করলে InitialCreate নামের একটি মাইগ্রেশন ফাইল তৈরি হবে। এই ফাইলের মধ্যে প্রথম ডেটাবেস স্কিমা তৈরি করার কোড থাকবে।

  2. ডেটাবেস আপডেট করা: মাইগ্রেশন তৈরি করার পর, আপনি ডেটাবেসকে আপডেট করার জন্য এই মাইগ্রেশন প্রয়োগ করতে পারেন।

    Command:

    Update-Database
    

    এই কমান্ডটি চালালে, EF আপনার ডেটাবেসে নতুন মডেল অনুযায়ী পরিবর্তনগুলি প্রয়োগ করবে।

  3. পরবর্তীতে মডেল পরিবর্তন করা: যদি আপনি পরে আপনার Entity ক্লাসে কোনো পরিবর্তন করেন (যেমন নতুন প্রপার্টি যোগ করা বা কোন টেবিল মুছে ফেলা), তবে এই পরিবর্তনগুলি ট্র্যাক করা এবং নতুন মাইগ্রেশন তৈরি করা যাবে।

    উদাহরণ:

    Add-Migration AddPhoneNumberToCustomer
    
  4. ডেটাবেস আপডেট করা: নতুন মডেল পরিবর্তনগুলির জন্য ডেটাবেসে পরিবর্তন প্রযোজ্য করতে আবার Update-Database কমান্ড ব্যবহার করতে হবে।

    Command:

    Update-Database
    

মাইগ্রেশন ফাইল এবং তাদের ব্যবহার

মাইগ্রেশন ফাইল গুলো সাধারণত দুটি অংশে বিভক্ত থাকে:

  1. Up Method:
    এই মেথডের মধ্যে ডেটাবেসে নতুন পরিবর্তনগুলি প্রয়োগ করা হয়। যখন আপনি Update-Database কমান্ড চালান, তখন এই মেথডের কোডটি প্রয়োগ হয়।
  2. Down Method:
    এই মেথডের মধ্যে পূর্ববর্তী অবস্থায় ফিরে যাওয়ার জন্য কোড থাকে। এটি সাধারণত ডেটাবেসে পূর্ববর্তী স্ট্রাকচার ফিরিয়ে আনার জন্য ব্যবহৃত হয় (যেমন, নতুন টেবিল বা কলাম মুছে ফেলা)।

    উদাহরণ:

    public partial class AddPhoneNumberToCustomer : DbMigration
    {
        public override void Up()
        {
            AddColumn("dbo.Customers", "PhoneNumber", c => c.String());
        }
        
        public override void Down()
        {
            DropColumn("dbo.Customers", "PhoneNumber");
        }
    }
    

মাইগ্রেশন কন্ট্রোল করা

মাইগ্রেশন রোলব্যাক (Rollback)

যদি আপনি একটি মাইগ্রেশন পূর্বাবস্থায় ফিরিয়ে নিতে চান, তাহলে Update-Database কমান্ডের সাথে -TargetMigration প্যারামিটার ব্যবহার করতে পারেন।

Update-Database -TargetMigration: "PreviousMigration"

এটি ডেটাবেসকে পূর্ববর্তী মাইগ্রেশন স্টেটসে ফিরে নিয়ে যাবে।

Automatic Data Seeding

ডেটাবেস মাইগ্রেশনের সময় আপনি ডেটা সিডিংও করতে পারেন, যা দিয়ে আপনি ডেটাবেসে স্বয়ংক্রিয়ভাবে ডেটা ইনসার্ট করতে পারেন। Entity Framework এ ডেটা সিডিং করতে Seed মেথড ব্যবহার করা হয়।

protected override void Seed(MyDbContext context)
{
    context.Customers.AddOrUpdate(
        c => c.Name,
        new Customer { Name = "John Doe", City = "Dhaka" }
    );
}

এই কোডটি ডেটাবেসে Customer টেবিলের জন্য নতুন রেকর্ড যোগ করবে বা পুরনো রেকর্ড আপডেট করবে।


মাইগ্রেশন ব্যবহার করার সময় কিছু গুরুত্বপূর্ণ বিষয়

  1. মডেল এবং ডেটাবেসের মধ্যে পার্থক্য: মাইগ্রেশন প্রক্রিয়া সম্পূর্ণ হলে, আপনি নিশ্চিত হতে পারেন যে কোড এবং ডেটাবেসের কাঠামো একই রয়েছে। মাইগ্রেশনটি এই পার্থক্যগুলো ট্র্যাক করে এবং সেগুলো আপডেট করতে সাহায্য করে।
  2. মাইগ্রেশন নামকরণ: প্রতিটি মাইগ্রেশন ফাইলের একটি অর্থপূর্ণ নাম দেওয়া উচিত, যেমন AddPhoneNumberToCustomer বা AddAddressToUser, যাতে ভবিষ্যতে ট্র্যাকিং এবং মেইন্টেনেন্স সহজ হয়।
  3. কনফ্লিক্ট সমাধান: যদি একাধিক ডেভেলপার একই সময়ে কাজ করে এবং মডেল পরিবর্তন করে, তাহলে মাইগ্রেশন কনফ্লিক্ট হতে পারে। এক্ষেত্রে আপনাকে ম্যানুয়ালি কনফ্লিক্ট সমাধান করতে হবে।

সারাংশ

Entity Framework এর মাইগ্রেশন সিস্টেম ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। মাইগ্রেশন ব্যবহার করলে আপনি সহজে কোড এবং ডেটাবেসের স্কিমার মধ্যে সিঙ্ক রাখতে পারবেন এবং ডেটাবেসে কোনো পরিবর্তন আনার সময় অটোমেটেড উপায়ে তা প্রয়োগ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion